﻿using System;

namespace GodProject.console
{
  /// <summary>
  /// Represents color scheme used by GodConsole
  /// </summary>
  class ColorScheme
  {
    #region default color scheme values

    /// <summary>
    /// Default foreground color, used for Parent printing
    /// </summary>
    private const ConsoleColor DefaultParentForeground = ConsoleColor.DarkGreen;
    /// <summary>
    /// Default foreground color, used for Cool Parent printing
    /// </summary>
    private const ConsoleColor DefaultCoolParentForeground = ConsoleColor.Magenta;
    /// <summary>
    /// Default background color, used for Cool Parent's Money printing
    /// </summary>
    private const ConsoleColor DefaultCoolParentMoneyBackground = ConsoleColor.Yellow;
    /// <summary>
    /// Default foreground color, used for Student printing
    /// </summary>
    private const ConsoleColor DefaultStudentForeground = ConsoleColor.Blue;
    /// <summary>
    /// Default foreground color, used for Botan printing
    /// </summary>
    private const ConsoleColor DefaultBotanForeground = ConsoleColor.Red;

    /// <summary>
    /// Default foreground color, used for Error printing
    /// </summary>
    private const ConsoleColor DefaultErrorForeground = ConsoleColor.White;
    /// <summary>
    /// Default backround color, used for Error printing
    /// </summary>
    private const ConsoleColor DefaultErrorBackground = ConsoleColor.DarkRed;

    /// <summary>
    /// Default background color, used for firstly created Humans printing
    /// </summary>
    private const ConsoleColor DefaultPairBackground = ConsoleColor.White;
    /// <summary>
    /// Default background color, used for "pair" Humans printing
    /// </summary>
    private const ConsoleColor DefaultNonPairBackground = ConsoleColor.Black;

    #endregion default color scheme values

    #region color scheme properties

    /// <summary>
    /// Foreground color, used for Parent printng
    /// </summary>
    public ConsoleColor ParentForeground { get; protected set; }
    /// <summary>
    /// Foreground color, used for Cool Parent printng
    /// </summary>
    public ConsoleColor CoolParentForeground { get; protected set; }
    /// <summary>
    /// Background color, used for Cool Parent's money sprintng
    /// </summary>
    public ConsoleColor CoolParentMoneyBackground { get; protected set; }
    /// <summary>
    /// Foreground color, used for Student printng
    /// </summary>
    public ConsoleColor StudentForeground { get; protected set; }
    /// <summary>
    /// Foreground color, used for Botan printng
    /// </summary>
    public ConsoleColor BotanForeground { get; protected set; }

    /// <summary>
    /// Foreground color, used for errors printng
    /// </summary>
    public ConsoleColor ErrorForeground { get; protected set; }
    /// <summary>
    /// Background color, used for errors printng
    /// </summary>
    public ConsoleColor ErrorBackground { get; protected set; }

    /// <summary>
    /// Background color, used for firstly created humans printng
    /// </summary>
    public ConsoleColor PairBackground { get; protected set; }
    /// <summary>
    /// Background color, used for "pair" (created as pair) humans printng
    /// </summary>
    public ConsoleColor NonPairBackground { get; protected set; }

    #endregion color scheme properties

    /// <summary>
    /// Default constructor. 
    /// </summary>
    public ColorScheme()
    {
      ParentForeground = DefaultParentForeground;
      CoolParentForeground = DefaultCoolParentForeground;
      CoolParentMoneyBackground = DefaultCoolParentMoneyBackground;
      StudentForeground = DefaultStudentForeground;
      BotanForeground = DefaultBotanForeground;
      ErrorForeground = DefaultErrorForeground;
      ErrorBackground = DefaultErrorBackground;
      PairBackground = DefaultPairBackground;
      NonPairBackground = DefaultNonPairBackground;
    }

  }
}
